With the rapid development of wireless network infrastructure, the demand for video services over these networks has been steadily growing. Among various services, video streaming has become one of the most important applications. However, in a wireless environment, efficiently streaming a coded video bit stream to a large number of users and simultaneously guaranteeing a certain quality of service (QoS) remains a challenge.
Video multicast is an efficient way to deliver one video simultaneously to many users over networks. In contrast to unicasting, video multicast improves bandwidth efficiency by sharing video packets delivered through networks. However, video multicast faces some particular problems arising from wireless network applications. For example, a multicasting wireless network is often characterized by having a physical channel that is highly error-prone and time varying. In addition, users in such a network can often have diverse channel conditions.
Retransmission and forward error correction (FEC) are the two commonly used mechanisms to improve the throughput of a wireless network. However, there are drawbacks when applying them straightforwardly in the multicast scenario. For example, retransmission is inefficient to all but one user when repeatedly multicasting of an original packet for the benefit of a single user who is error-prone. In fact, 802.11 wireless local area networks (WLANs) do not support link layer retransmission for multicast applications. Meanwhile, FEC can maintain a constant throughput and bounded delay. However, to guarantee certain QoS, FEC codes are often chosen for the worst channel conditions. This can unnecessarily penalize the throughput when the channel is in a good state.
The hybrid Automatic Repeat-reQuest (ARQ) scheme proposed by Majumdar, D. Sachs, I. Kozintsev, K. Ramchandran and M. Yeung (in “Multicast and unicast real-time video streaming over wireless LANs”, IEEE Trans. Circuits & System for Video Technol., Vol. 12, No. 6, June 2002, pp. 524-534) combines the benefits from both retransmission and FEC. With hybrid-ARQ, the server first sends user data and then FEC data to the client. During the process, when the client has received all the user data or enough FEC data to recover losses, the client sends an acknowledgement (ACK) back to the server. Once the server receives ACK, it stops sending more data. Since the amount of FEC data sent to the client can be adjusted properly according to current channel condition, hybrid-ARQ is able to maintain high bandwidth efficiency. However, when the channel undergoes severe losses, hybrid-ARQ can result in unbounded delay and bandwidth expansion. For real-time services such as video streaming, video packets have to be delivered before their playback deadlines through a potentially bandwidth-limited network. So for such applications, video data losses can still occur with hybrid-ARQ, which degrades QoS.
In the environment of video streaming to a multicast group over a wireless network with feedback, it is contemplated in this invention that the users in the group will have different channel conditions and, as such, delivery of the same video stream to the entire group may not be equally efficacious to each member of the group. Therefore, in such a contemplated multicast group, it is believed that a need exists to develop an operating point strategy, which is “fair and reasonable” to all the users.
The premise of the invention is that a good operating point should provide good overall system performance, while maintaining reasonable performance for each user in the group. However, because of the possibly diverse channel conditions in multicast networks, the above two requirements can often be contradictory. This makes it difficult to directly quantify the performance of an operating point. As such, a set of intuitive factors for an “ideal” operating point selection strategy will be briefly discussed.
The first intuitive factor is the majority rule. This factor is based on the premise that if the majority of the users have the same or similar channel conditions, then these users should be more likely to get their desired operating points than of the rest users. This guarantees a reasonably good overall system performance.
The second intuitive factor is individual fairness. This factor provides that no individual user should be completely denied service nor should one be overly penalized. The QoS degradation due to a selected operating point should be (preferably equally) shared by all the users.
The third intuitive factor is flexibility. This factor is essentially a recognition of the fact that the first two factors can be conflicting and one factor can be preferred over the other. Here, strategy should be flexible to implement such a preference.
In light of the potential conflicts between the intuitive factors, it would appear that some quantitative system performance metrics can be helpful in characterizing the operating points in a particular multicast environment. In the following, a list of some methods will now be presented, along with an analysis of how they influence intuitive factors summarized above. Suppose a multicast group has N users, and the server can choose M different operating points with each operating point denoted as Sm (where 1≦m≦M). For each user j (1≦j≦N), when an operating point Sm is selected, its corresponding performance measure will be noted as Uj,m.
The worst-case method selects an operating point according to the users in the group who have the worst channel condition. In other words, the selected operating point is only optimal for those users with the worst channel condition, regardless of the number of users in the group with other channel conditions. This can overly penalize a subgroup of users with better channel condition and can decrease the collective system performance. It does not provide any flexibility in adjusting between the first and second intuitive factors.
The average performance method defines a metric based on the average performance of all the users in the group. Here, the operating point is derived by optimizing the metric:
      m    *    =                    arg        (                  Max          ⁢                                    ∑                              j                =                1                            N                        ⁢                          U                              j                .                m                                                    )            ⁢                          ⁢      1        ≤    m    ≤    M  This method satisfies the first factor, but fails the second factor, because some users in the group can be overly penalized. The method does not seemingly provide flexibility in adjusting between the first and second factors.
The weighted average method defines the metric as the weighted average performance of the users in the group, and the operating point is derived by optimizing the metric:
            m      *        =          arg      (              Max        ⁢                              ∑                          j              =              1                        N                    ⁢                                    W              j                        ⁢                          U                              j                .                m                                                        )        where                    ∑                  j          =          1                N            ⁢              W        j              =                  1        ⁢                                  ⁢        and        ⁢                                  ⁢        1            ≤      m      ≤      M      The weight Wj reflects the importance of user j in the overall system. An example for the weights can be:
      W    j    =      {                                        1            /                          N              g                                                                          P              j                        ≤                          P              th                                                            0                                                    P              j                        >                          P              th                                          where Pj is the channel error/loss rate experienced by user j, Pth is a preset threshold and Ng is the number of users in the group having Pj being less than Pth. This weighting approach only averages over the users with reasonably good channel conditions while excluding those with bad channel conditions. This method can provide good performance for a selected subgroup of users. However, it can also overly penalize certain users in the group; thus failing the second factor. Further, this method cannot provide flexibility in adjusting between the first and second factors.
The minimax degradation method selects an operating point Sm, which can minimize the maximum performance degradation among all the users:
      M    *    =            arg      ⁢              {                  Min          [                      Max            ⁢                                          ∑                                  j                  =                  1                                N                            ⁢                              (                                                      U                    j                    *                                    -                                      U                                          j                      ,                      m                                                                      )                                              ]                }            ⁢                          ⁢      1        ≤    m    ≤    M  where U*j is the optimal performance achievable by user j among all the available operating points. This method cannot give preference to the majority users in the group and thus can compromise overall system performance, which fails on the first factor. As such, this method cannot provide flexibility in adjusting the first and second factors.